<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <button @click="counter += 1">{{counter}}</button>
        <button @click="destroyApp">销毁组件</button>
    </div>
</body>
<script src="https://cn.vuejs.org/js/vue.js"></script>
<script>
    let vm = new Vue({
        el: "#app",
        data: {
            msg: '😀',
            counter: 0
        },
        methods: {
            handleClick: function () {
                console.log("处理方法");
            },
            destroyApp: function () {
                this.$destroy();
            }
        },
        beforeCreate() {
            console.log("组件 beforeCreate 数据", this.$data);//数据
            console.log("组件 beforeCreate $el", this.$el);  //页面元素
            console.log("组件 beforeCreate 事件", this.handleClick);//页面元素
        },
        created() {
            console.log("组件 created 数据", this.$data);//数据
            console.log("组件 created $el", this.$el);  //页面元素
            console.log("组件 created 事件", this.handleClick);//页面元素
        },
        beforeMount() {
            console.log("组件 beforeMount 数据", this.$data);//数据
            console.log("组件 beforeMount $el", this.$el);  //页面元素
            console.log("组件 beforeMount 事件", this.handleClick);//页面元素
        },
        mounted() {
            console.log("组件  mounted 数据", this.$data);//数据
            console.log("组件  mounted $el", this.$el);  //页面元素
            console.log("组件  mounted 事件", this.handleClick);//页面元素
        },
        beforeUpdate() {
            console.log("组件  beforeUpdate 数据", this.$data);//数据
            console.log("组件  beforeUpdate $el", this.$el);  //页面元素
            console.log("组件  beforeUpdate 事件", this.handleClick);//页面元素
        },
        updated () {
            console.log("组件  updated 数据", this.$data);//数据
            console.log("组件  updated $el", this.$el);  //页面元素
            console.log("组件  updated 事件", this.handleClick);//页面元素
        },
        beforeDestroy () {
            console.log("组件  beforeDestroy 数据", this.$data);//数据
            console.log("组件  beforeDestroy $el", this.$el);  //页面元素
            console.log("组件  beforeDestroy 事件", this.handleClick);//页面元素
        },
        destroyed () {
            console.log("组件  destroyed 数据", this.$data);//数据
            console.log("组件  destroyed $el", this.$el);  //页面元素
            console.log("组件  destroyed 事件", this.handleClick);//页面元素
        }
    });
</script>

</html>